import * as Fs from 'fs'
import * as Path from 'path'


const info = {
	vues: new Map(),
	svgs: new Map(),
}



// const dir = Path.join(Path.resolve())

const getVueSvgUsed = dir => {
	Fs.readdirSync(dir).map(filename => {
		const fullpath = Path.join(dir, filename)
		const state = Fs.statSync(fullpath)
		if (state.isDirectory()) {
			getVueSvgUsed(fullpath);
		} else if (/\.vue$/.test(filename)) {
			const file = Fs.readFileSync(fullpath).toString();
			const svgs = file.match(/<svg-icon [\w\W]*?>/g) || [];
			svgs.map(str=>{
				const name = (str.match(/name=['"]([\w\W]*?)['"]/) || [])[1]
				name && info.vues.set(name,true);
			});
		}
	});
}

const getSvgList = dir => {
	Fs.readdirSync(dir).map(filename => {
		const fullpath = Path.join(dir, filename)
		const state = Fs.statSync(fullpath)
		if (state.isDirectory()) {
			getSvgList(fullpath);
		} else if (/\.svg$/.test(filename)) {
			info.svgs.set(filename.replace(/\.svg$/,''),true);
		}
	});
}

// pages 页面
getVueSvgUsed(Path.join(Path.resolve(),'pages'));
// components 页面
getVueSvgUsed(Path.join(Path.resolve()),'components');

// 存在的svg
getSvgList(Path.join(Path.resolve(),'assets','svgs'));


// 先看缺少的
info.vues.forEach((val,key)=> {
	if(info.svgs.get(key)){
		// 有值
	}else{
		// 没有，表示缺少的
		console.log('缺少svg：' + key)
	}
})

info.svgs.forEach((val,key)=> {
	if(info.vues.get(key)){
		// 有值
	}else{
		// 没有，多出来的图标
		console.log('多的svg：' + key)
	}
})



